Next | Prev | Up | Top | Contents | Index
Realtime Discipline
In the simplest case, an activity process should start during the minor frame to which it is queued, and should complete its work and yield within the same minor frame.
If the process is not ready to run (for example, is blocked on I/O) during the entire minor frame, an underrun exception is said to occur. If the process fails to complete its work and yield within the minor frame interval, an overrun exception is said to occur.
The Frame Scheduler calls this strict discipline the Realtime scheduling discipline.
The simplest case of a Frame Scheduler would consist of
- one minor frame per major frame--the time base is also the frame rate
- one or more activities enqueued to the frame with Realtime discipline
This model could describe a simple kind of simulator in which certain activities--poll the inputs; calculate the new status; update the display--must be repeated in that order during every frame. In this scenario, each activity must start and must finish in every frame. If one fails to start, or fails to finish, the real-time program is broken in some way and must take some action.
However, realistic designs need the flexibility to have processes that
- need not start every frame; for instance, processes that sleep on a semaphore until there is work for them to do
- may run longer than one minor frame
- should run only when time is available, and whose rate of progress is not critical
The other disciplines are used, in combination with Realtime and with each other, to allow these variations.
Next | Prev | Up | Top | Contents | Index